package com.lzh.java;

/*
 *  一.数组的概述
 * 1.数组(Array)，是多个相同类型数据按一定顺序排列的集合，并使用一个名字，
 *	 并通过编号的方式对这些数据进行统一管理
 *
 * 2.数组的常见概念：
 * 	数组名
 * 	下标（或索引）
 * 	元素
 * 	数组的长度
 * 
 * 3.数组的特点：
 * 1) 数组是有序排列的
 * 2) 数组属于引用数据类型，数组的元素，既可以是基本数据类型，也可以是引用数据类型
 * 3）创建数组对象会在内存中开辟一整块连续空间。
 * 3) 数组的长度一旦确定，就不能修改
 * 
 * 4.数组的分类
 * 		① 按照维数：一维数组，二维
 * 		② 按照数组元素的类型：基本数据类型元素的数组、引用数据类型元素的数组
 * 
 * 5.一维数组的使用
 * 	① 一维数组的声明和初始化
 *  ② 如何使用数组的指定位置的元素
 *  ③ 如何获取数组的长度
 *  ④ 如何遍历数组
 *  ⑤ 数组元素的默认初始化值,见ArrayTest1.java
 *  ⑥ 数组的内存解析,见ArrayTest1.java
 * 		
 */
public class ArrayTest {
	
	public static void main(String[] args) {
		
		//1.1 一维数组的声明和初始化
		int num;//声明
		num = 10; //初始化
		int id = 1001; //声明+初始化
		
		int[] ids;//声明
		//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
		ids = new int[] {1001,1002,1003,1004};
		//1.2动态初始化：数组的初始化和数组元素的赋值操作分开进行
		String[] names = new String[5];
		
		//错误的写法：
		//int[] arr1 = new int[];
		//int[5] arr2 = new int[5];
		//int[] arr3 = new int[3] {1,2,3};
		
		//也是正确的写法
		int[] arr4 = {1,2,3,4,5};
//int[] ids;
//ids = new int[] {1001,1002,1003,1004};//换行不能省略new int[]
		
		//总结：数组一旦初始化完成，其长度就确定了
		
		//2.如何使用数组的指定位置的元素：同过角标的方式调用
		//数组的角标（索引）从0开始的，到数组的长度-1结束
		names[0] = "刘智豪";
		names[1] = "小红";
		names[2] = "小花";
		names[3] = "张学良";
		names[4] = "王小帅";
		
		//3.如何获取数组的长度
		//属性：length
		System.out.println(names.length);//5
		
		//4.如何遍历数组
		for(int i =0;i<names.length;i++) {
			System.out.println(names[i]);
		}
		  
	}
	
}
